use crate::constants;

pub(crate) mod blockchain_hash;
pub(crate) mod private_key;
pub(crate) mod public_key;
pub(crate) mod signature;

pub type BlockId = blockchain_hash::BlockChainHash;
pub type TransactionId = blockchain_hash::BlockChainHash;
pub type TransactionValue = i64;

pub type Hash256Bytes = [u8; constants::HASH256_BYTES_LENGTH];
pub type Hash160Bytes = [u8; constants::HASH160_BYTES_LENGTH];
pub type BlockHeight = i64;
pub type TimeStamp = u64;

#[cfg(test)]
mod tests_learning {
    #[test]
    fn test_1() {
        let vec = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
        let tmp = &vec[..5];
        assert_eq!(tmp.len(), 5);
        assert_eq!(tmp, &[1, 2, 3, 4, 5]);
    }
}
